Register Operands 暫存器運算元
Register運算速度非常快
在MIPS裡面它的運算速度和processor運算時脈一致
MIPS如何操作register
MIPS指令全部都是32bit
Design Principle 1 : Simplicity favors regularity(簡單有易於規則)簡介register
register是一個很特殊的硬體,可以放置在處理器裡面,
實際上處理器在運算的時候主要都是透過操作這些register
處理器直接存取register有許多好處 :
1. register已經在processor硬體裡面,所以比從memory存取還快!
2. register可提供compiler將高階語言轉換成低階組合語言時,
一些常用的資料讓他可以暫時存放
所以我們可以把常用的資料放在register,
有效減少processor和memory之間的資料溝通
3. 可以改進code density
- "code density" example :
有"32個register"要決定資料的位置的話要 所以是 5 bits
假設有"一個4GB的記憶體"要決定資料的位置的話要 所以是 32 bits
所以使用register可以有效提升 "code density"
1.共有32個通用型register,每個register有32bit
Design Principle 2 : Smaller is faster(小就是快)32bit是每個register操作的基本單位 => 稱為一個 "word"
每個register都有各自的編號(0~31)
除了用數字指名暫存器,我們也會依據一些使用的習慣來給每個暫存器一個額外的名字
2.還有32個浮點數型register,每個register也有32bit
3.特殊運用register : HI, LO, PC
隨著register architecture技術進步,register的改變
- accumulator(只有一個register) : 做完再存回自己
- stack : 操作都要在stack裡面,answer再pop出來
- GPR : 可以任意把資料取出來做運算再放回去
- Load/Store(GPR的變形) :
所有跟processor有關的運算,operands都要在register裡面進行。
若要對記憶體進行運算,只能透過Load/Store將資料從記憶體取出放到暫存器再重新運算
MIPS其實就是一種Load/Store architecture
只有Load/Store規定運算只能出現在register,其他種架構沒這樣的規定。
不同架構下執行C=A+B的assembly
1975年後所有machine都採用GPRs的概念